<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Twisted from Scratch, or The Evolution of Finger</title>
  </head>
<body>

<h1>Twisted from Scratch, or The Evolution of Finger</h1>

<h2>Introduction</h2>

<p>
Twisted is a big system. People are often daunted when they approach it. It's
hard to know where to start looking.
</p>

<p>
This guide builds a full-fledged Twisted application from the ground up, using
most of the important bits of the framework. There is a lot of code, but don't
be afraid.
</p>

<p>
The application we are looking at is a <q>finger</q> service, along the 
lines of the familiar service traditionally provided by UNIX&trade; servers. 
We will extend this service slightly beyond the standard, in order to 
demonstrate some of Twisted's higher-level features.
</p>

<h2>Contents</h2>

<p>
This tutorial is split into eleven parts:
</p>

<ol>
<li><a href="intro.xhtml">The Evolution of Finger: building a simple
finger service</a></li>
<li><a href="protocol.xhtml">The Evolution of Finger: adding features
to the finger service</a></li>
<li><a href="style.xhtml">The Evolution of Finger: cleaning up the
finger code</a></li>
<li><a href="components.xhtml">The Evolution of Finger: moving to a
component based architecture</a></li>
<li><a href="backends.xhtml">The Evolution of Finger: pluggable
backends</a></li>
<li><a href="web.xhtml">The Evolution of Finger: a web
frontend</a></li>
<li><a href="pb.xhtml">The Evolution of Finger: Twisted client
support using Perspective Broker</a></li>
<li><a href="factory.xhtml">The Evolution of Finger: using a single
factory for multiple protocols</a></li>
<li><a href="client.xhtml">The Evolution of Finger: a Twisted finger
client</a></li>
<li><a href="library.xhtml">The Evolution of Finger: making a finger library</a></li>
<li><a href="configuration.xhtml">The Evolution of Finger:
configuration and packaging of the finger service</a></li>
</ol>


</body>
</html>
